package main

import (
	"fmt"

	"github.com/tealeg/xlsx"
)

func main() {
	// 目标文件和 Sheet
	targetFile := xlsx.NewFile()
	targetSheet, err := targetFile.AddSheet("MergedData")
	if err != nil {
		fmt.Println("Error creating target sheet:", err)
		return
	}

	// 需要合并的文件列表
	files := []string{"test1.xlsx", "test2.xlsx", "test3.xlsx", "test4.xlsx", "test5.xlsx",
		"test6.xlsx", "test7.xlsx", "test8.xlsx", "test9.xlsx", "test10.xlsx", "test10.xlsx"}

	// 是否跳过表头（假设所有文件表头相同）
	skipHeader := true

	for _, file := range files {
		// 打开源文件
		sourceFile, err := xlsx.OpenFile(file)
		if err != nil {
			fmt.Printf("Error opening %s: %v\n", file, err)
			continue
		}

		// 假设合并第一个 Sheet 的数据
		sourceSheet := sourceFile.Sheets[0]
		for rowIndex, sourceRow := range sourceSheet.Rows {
			// 跳过表头（从第二行开始）
			if skipHeader && rowIndex == 0 {
				continue
			}

			// 复制行数据到目标 Sheet
			targetRow := targetSheet.AddRow()
			for _, sourceCell := range sourceRow.Cells {
				targetCell := targetRow.AddCell()
				targetCell.Value = sourceCell.String()
			}
		}
	}

	// 保存目标文件
	err = targetFile.Save("merged_data.xlsx")
	if err != nil {
		fmt.Println("Error saving merged file:", err)
	} else {
		fmt.Println("Data merged successfully!")
	}
}
